/**
 * Created by PengWei on 2018/7/24.
 */
namespace mengdao {
    export interface IBundle extends IExtension {
    }

    export type IClass<T> = new(...args: any[]) => T

    export interface IConfig {
        configure(): void;
    }

    export interface IExtension {
        extend(context: Context): void;
    }

    export interface IMatcher {
        matches(item: any): boolean;
    }

    export interface Abstract<T> {
        prototype: T;
    }

    export interface IClear {
        clear();
    }

    export interface IDispose {
        dispose();
    }

    export interface ICommand {
        execute(data:any):void;
    }

    export type TypeIdentifier<T> = (string | symbol | IClass<T> | Abstract<T>);
    export  interface IView {
        onInit();
        onUpdate();
        onClose();
    }
    export interface IWindow {

    }
    export interface IRequestBack {
        onSuccess:Function,
        callObj:any
        onFail?:Function,
    }
}